package br.edu.unilasalle.simon_test.cadastro;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;

import br.edu.unilasalle.simon_test.AbstractPage;

public class FuncionarioPage extends AbstractPage {

	@FindBy(id = "btnAdicionar")
	protected WebElement adicionar;
	
	@FindBy(id = "nome")
	protected WebElement nome;
	
	@FindBy(id = "sobrenome")
	protected WebElement sobrenome;
	
	@FindBy(id = "telefone")
	protected WebElement telefone;
	
	@FindBy(id = "dtNasc")
	protected WebElement dtNasc;
	
	@FindBy(id = "cpf")
	protected WebElement cpf;
	
	@FindBy(id = "rg")
	protected WebElement rg;
	
	@FindBy(linkText = "Endereço")
	protected WebElement menuEndereco;
	
	@FindBy(id = "cep")
	protected WebElement cep;
	
	@FindBy(id = "selEstado")
	protected WebElement selEstado;
	
	@FindBy(id = "selCidade")
	protected WebElement selCidade;
	
	@FindBy(id = "bairro")
	protected WebElement bairro;
	
	@FindBy(id = "endereco")
	protected WebElement endereco;
	
	@FindBy(id = "numero")
	protected WebElement numero;
	
	@FindBy(id = "complemento")
	protected WebElement complemento;
	
	@FindBy(linkText = "Dados Profissionais")
	protected WebElement menuDadosProf;
	
	@FindBy(id = "selLoja")
	protected WebElement selLoja;
	
	@FindBy(id = "dtAdmissao")
	protected WebElement dtAdmissao;
	
	@FindBy(id = "dtDemissao")
	protected WebElement dtDemissao;
	
	@FindBy(id = "cargo")
	protected WebElement cargo;
	
	@FindBy(id = "salario")
	protected WebElement salario;
	
	@FindBy(id = "meta")
	protected WebElement meta;
	
	@FindBy(id = "comissao")
	protected WebElement comissao;
	
	@FindBy(id = "btnAtualizar")
	protected WebElement atualizar;
	
	@FindBy(id = "btnIncluir")
	protected WebElement incluir;
	
	public FuncionarioPage(WebDriver driver) {
		super(driver);
	}
	
	public void abreTela() {
		openAsAdmin();
		open("/#/funcionarios-list");
	}
	
	public void cadastrarFuncionario() throws Exception {
		adicionar.click();
		
		type(nome, "funcTeste");
		type(sobrenome, "Sobrenome");
		typeMask(telefone, "5133334444");
		type(dtNasc, "1983-05-21");
		typeMask(cpf, "00371745098");
		typeMask(rg, "4078852581");
		
		menuEndereco.click();
		typeMask(cep, "92200270"); waitAjaxComplete();
		//selectComboByValue(selEstado, "22");
		//selectComboByValue(selCidade, "79");
		//type(bairro, "Rio Branco");
		//type(endereco, "Rua Paes Lemes");
		typeMask(numero, "720");
		type(complemento, "Casa 87");
		
		menuDadosProf.click();
		selectComboByValue(selLoja, "1"); // Seleciona loja 1
		type(dtAdmissao, "2013-02-01");
		type(dtDemissao, "2014-01-15");
		type(cargo, "Vendedor");
		typeMask(salario, "987,65");
		typeMask(meta, "12.500,00");
		typeMask(comissao, "10");
		
		find(incluir).click();
		waitAjaxComplete();
	}

	public void editarFuncionario() {
		detalharRegistro("funcTeste");
		nome.clear();
		type(nome, "funcTeste2");
		atualizar.click();
		waitAjaxComplete();
	}

}
